home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / libkb100.zip / LIBKB-1.00 / CONFIG / LINUX / AOUT_SO.MK next >
Text File  |  1996-07-23  |  3KB  |  144 lines

  1. #
  2. # Makefile for Linux a.out shared library
  3. #
  4. # libkb -- a free, advanced and portable low-level keyboard library
  5. # Copyright (C) 1995, 1996 Markus Franz Xaver Johannes Oberhumer
  6. # For conditions of distribution and use, see copyright notice in kb.h 
  7. #
  8.  
  9.  
  10. #
  11. # Build libkb shared image.
  12. # Required: dlltools >= 2.16
  13. #
  14.  
  15. #
  16. # Adress space reserved for the library.
  17. #
  18. JUMP_BASE  = 0x73b00000
  19. JUMP_SIZE  = 0x400
  20. JUMP_GOT   = 0x400
  21.  
  22.  
  23. #
  24. # Your X11 directory setup
  25. #
  26. ## SHARED_LIBPATH  += -L/usr/X11R6/lib
  27. ## SHARED_REQ_LIBS += -lXt -lX11
  28.  
  29.  
  30.  
  31. # /***********************************************************************
  32. # // imported vars:
  33. # //    $(lib_name) $(major_shared) $(minor_shared)
  34. # //    $(SRCS)
  35. # //    $(INSTALL) $(INSTALL_LIBDIR)
  36. # //
  37. # // exported vars:
  38. # //    $(SHARED_LIB) $(SHARED_OBJS) $(SHARED_CFLAGS)
  39. # //
  40. # // exported targets: 
  41. # //    shared_lib  shared_lib_install  shared_lib_clean
  42. # //    $(SHARED_LIB) $(JUMP_DIR)
  43. # //    shared_stage1  shared_stage2
  44. # //
  45. # ************************************************************************/
  46.  
  47. .PHONY: shared_lib shared_lib_clean shared_lib_install
  48. .PHONY: shared_stage1 shared_stage2
  49.  
  50. SHARED_LIB = $(JUMP_SA)
  51.  
  52. SHARED_OBJS = $(SRCS:%.c=%.so)
  53.  
  54. SHARED_CFLAGS += -B/usr/dll/jump/
  55.  
  56. %.so : %.c
  57.     $(COMPILE.c) $(SHARED_CFLAGS) $< $(OUTPUT_OPTION)
  58.  
  59.  
  60. SHARED_LIBGCC =`gcc --print-libgcc-file-name`
  61. SHARED_REV=$(major_shared).$(minor_shared)
  62.  
  63. JUMP_DIR=./jump
  64. JUMP_LIB=lib$(lib_name)
  65. JUMP_AR=lib$(lib_name).a~
  66. JUMP_SA=lib$(lib_name).sa
  67. JUMP_SO=lib$(lib_name).so.$(SHARED_REV)
  68.  
  69. export JUMP_DIR JUMP_LIB
  70.  
  71.  
  72.  
  73.  
  74. $(JUMP_AR): $(SHARED_OBJS)
  75.     $(RM) $(JUMP_AR)
  76.     (cd .; ar cq  $(JUMP_AR) $(SHARED_OBJS)) || exit 1
  77.     ranlib $(JUMP_AR)
  78.  
  79. $(JUMP_DIR):
  80.     mkdir $(JUMP_DIR)
  81.  
  82. $(JUMP_DIR)/jump.log:
  83.     @echo "#"
  84.     @echo "# Stage 1: Collect global vars and exported functions."
  85.     @echo "#"
  86.     if [ ! -d $(JUMP_DIR) ]; then mkdir $(JUMP_DIR); fi
  87.     @if [ -s $(JUMP_DIR)/jump.log ]; then echo "Error: Leftover globals for shared lib"; exit 1; fi
  88.     $(RM) $(JUMP_AR)
  89.     $(MAKE) $(JUMP_AR)
  90.     touch $@
  91.  
  92.  
  93. ./mk_JUMP_SO_0: $(JUMP_DIR)/jump.log
  94.     $(RM) $(SHARED_OBJS)
  95.     $(RM) $(JUMP_AR)
  96.     getfuncs
  97.     getvars
  98.     touch $@
  99.  
  100. ./mk_JUMP_SO_1: ./mk_JUMP_SO_0
  101.     @echo "#"
  102.     @echo "# Stage 2: Build shared image."
  103.     @echo "#"
  104.     $(MAKE) $(JUMP_AR)
  105.     getsize > $(JUMP_DIR)/j.v
  106.     mv $(JUMP_DIR)/j.v $(JUMP_DIR)/jump.vars
  107.     touch $@
  108.  
  109. $(JUMP_SO): ./mk_JUMP_SO_1 $(JUMP_AR)
  110.     -mkimage -f -l $(JUMP_LIB) -v $(SHARED_REV) -a $(JUMP_BASE) -j $(JUMP_SIZE) -g $(JUMP_GOT) -- $(JUMP_AR) $(SHARED_LIBPATH) $(SHARED_REQ_LIBS) -lc $(SHARED_LIBGCC) -lc -dll-verbose 
  111.  
  112.  
  113. $(JUMP_SA): $(JUMP_SO)
  114.     mkstubs -f -l $(JUMP_LIB) -v $(SHARED_REV) -a $(JUMP_BASE) -j $(JUMP_SIZE) -g $(JUMP_GOT) -- $(JUMP_LIB)
  115.     verify-shlib -l $(JUMP_SO) $(JUMP_SA)
  116.  
  117.  
  118. shared_lib: $(JUMP_DIR) $(SHARED_LIB)
  119.  
  120.  
  121. shared_stage1: shared_lib_clean 
  122.     $(MAKE) $(JUMP_DIR)/jump.log
  123.  
  124. shared_stage2: $(JUMP_SA)
  125.  
  126.  
  127. shared_lib_clean:
  128.     $(RM) $(JUMP_SO) $(JUMP_SA) $(JUMP_AR) $(SHARED_OBJS)
  129.     $(RM) $(JUMP_DIR)/*
  130.     $(RM) size.nm verify.out ./mk_JUMP_SO_0 ./mk_JUMP_SO_1
  131.  
  132.  
  133.  
  134. # /***********************************************************************
  135. # // installation
  136. # ************************************************************************/
  137.  
  138. shared_lib_install: $(JUMP_SA) $(JUMP_SO)
  139.     $(INSTALL) $^ $(INSTALL_LIBDIR)/
  140.     $(RM) $(INSTALL_LIBDIR)/lib$(lib_name).so.$(major_shared)
  141.     ln -s $(INSTALL_LIBDIR)/$(JUMP_SO) $(INSTALL_LIBDIR)/lib$(lib_name).so.$(major_shared)
  142.  
  143.  
  144.